<?php
/*
This file is part of tribals-bot.

tribals-bot is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

tribals-bot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with tribals-bot.  If not, see <http://www.gnu.org/licenses/>.
*/
/*
Questa funzione vede se l'utente è loggiato. Se è loggiato ritorna true altrimenti false.
*/
function is_logged(){
    // Metto globali le variabili che mi servono
    global $home_page;
    global $user_agent;
    global $cookie_file;
    global $str_session_expired;
    
    // Ora scarico la pagina
    $ch = curl_init($home_page);// Inizializzo curl
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// Faccio si che venga stampato l'output html
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);// Faccio si che vengano seguiti ireindirizzamenti
    $output = curl_exec($ch);
    //echo $output;
    curl_close($ch); // Chiudo la connessione
    // Ora cerco di estrapolare la stringa di sessione scaduta
    $session = strstr($output, $str_session_expired);
    // Se è stato ritornato falso vuol dire che la stringa di sessione scaduta non c'è quindi la sessione non è scaduta
    if($session == false){
        return true;
    }
    else{
        return false;
    }
}

/*
Questa funzione provvede a scaricare una pagina con curl avendo tutte le impostazioni già configurate. Ritorna l'html della pagina
*/
function curl_download($page){
    global $user_agent;
    global $cookie_file;
    $ch = curl_init($page);// Inizializzo curl
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// Faccio si che venga stampato l'output html
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);// Faccio si che vengano seguiti ireindirizzamenti
    $output = curl_exec($ch);
    curl_close($ch); // Chiudo la connessione
    return $output;
}

/*
Questa funzione provvede a scaricare una pagina con curl avendo tutte le impostazioni già configurate. Ritorna l'html della pagina. Effettua una richiesta post
*/
function curl_download_with_post($page, $post_data){
    global $user_agent;
    global $cookie_file;
    $ch = curl_init($page);// Inizializzo curl
    curl_setopt($ch, CURLOPT_POST, true);// Attivo la richiesta post
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);// Setto i dati da inviare tramite post
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// Faccio si che venga stampato l'output html
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);// Faccio si che vengano seguiti ireindirizzamenti
    $output = curl_exec($ch);
    curl_close($ch); // Chiudo la connessione
    return $output;
}

/*
Questa funzione controlla se è attiva la protezione bot. Ritorna false se non è attive, true se attiva.
*/
function bot_protection($page){
    global $str_bot_protection;
    $output = strstr($page, $str_bot_protection);
    if(!empty($output)){
        return true;
    }
    else{
        return false;
    }
}

/*
Questa funzione blocca l'esecuzione dello script con errore se è attiva la protezione bot.
*/
function die_bot_protection($page){
    if(bot_protection($page)){
        die('Error, bot protection');
    }
}

?>